Soft handoff across different networks assisted by an end-to-end application protocol

ABSTRACT

A method of handoff across different networks is disclosed. A first communication link through a first network is used for communicating between a first user agent and a second user agent. The user agents negotiate to use a second communication link for the same call. The second communication link is established through a second network between the first user agent and the second user agent while maintaining the first communication link. Related data is sent through the first communication link and the second communication link. The first communication link is dropped and communication is continued using the second communication link.

CLAIM OF PRIORITY UNDER 35 U.S.C. §120

The present application for patent is a continuation of patent application Ser. No. 10/366,454 entitled “Soft handoff across different networks assisted by an end-to-end application protocol” filed Feb. 12, 2003, assigned to the assignee hereof and hereby expressly incorporated by reference herein.

BACKGROUND

1. Field

The present invention relates generally to soft handoff in communications systems, and more specifically, to soft handoff across different types of communication networks assisted by an end-to-end application protocol.

2. Background

Communications systems are used for transmission of information from one device to another. Today there are many different kinds of communication devices and many different kinds of communication networks that may be used. Examples of communication devices include, but are not limited to, a telephone, a cellular phone, a desktop computer, a laptop computer, a personal digital assistant, a pager, and the like. Different communication networks include, but are not limited to, a Code Division Multiple Access (CDMA) 1x network, a Local Area Network (LAN), a wireless LAN, the Internet, a Wideband CDMA (W-CDMA) network, a General Packet Radio Service (GPRS) network, etc. As shown, a user has many options to choose from in selecting a communication system for his or her use.

With the many different communication options available to a user, there may be times when a user wishes to change the way in which he or she is achieving the communications while engaged in a current communication link. For example, the user may wish to switch networks or devices during a call or a session without losing the call or session. A call or session is a communication state shared by two or more parties that have established communication link(s) between them; one example of a call or session is a Voice over IP call. A need exists, therefore, for systems and methods to enable a user to be able to switch networks or devices during a call or a session without losing the call or session.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a network block diagram illustrating soft handoff assisted by an end-to-end application protocol;

FIG. 2 is a block diagram of certain components in an embodiment of a user agent for a case where the user agent is in a mobile terminal;

FIG. 3 is a general flow diagram illustrating a method for soft handoff assisted by an end-to-end application protocol as depicted in FIG. 1;

FIG. 4 is a general flow diagram illustrating a method for soft handoff assisted by an end-to-end application protocol where the user agent is notified that another user agent desires to move to a new network;

FIG. 5 is a flow diagram illustrating discovery of a new network and a determination whether to move to the new network;

FIG. 6 is a block diagram illustrating an embodiment of network discovery settings;

FIG. 7 is a block diagram of an embodiment of network preference criteria;

FIG. 8 is a block diagram of a system using a network application gateway to facilitate soft handoff assisted by an end-to-end application protocol;

FIG. 9 is a flow diagram illustrating a method for using a network application gateway to facilitate soft handoff assisted by an end-to-end application protocol;

FIG. 10 is a block diagram of another embodiment of a system using a network application gateway to facilitate soft handoff assisted by an end-to-end application protocol;

FIG. 11 is a block diagram illustrating call transfer from one device to another device; and

FIG. 12 is a flow diagram illustrating call transfer from one device to another device as depicted in FIG. 11.

DETAILED DESCRIPTION

There are many different electronic communication options available to a user. There may be times when a user wishes to change the way in which he or she is achieving the communications while engaged in a current communication link. For example, the user may wish to switch networks during a call or a session without losing the call or session, (e.g., the user may wish to move his or her call from a CDMA network to a wireless LAN). The systems and methods disclosed herein provide means whereby the user may switch networks during a call without losing the call. The application running on the user's communication device may perform the necessary tasks such that the user experiences no disruption during this soft handoff between different networks.

A method for soft handoff across different networks is disclosed. A first communication link through a first network is used for communicating between a first user agent and a second user agent. The user agents negotiate to use a second communication link for the same call. The second communication link is established through a second network between the first user agent and the second user agent while maintaining the first communication link. Related data is sent through the first communication link and the second communication link such that the related data is for the same call. The first communication link is dropped and communication is continued using the second communication link.

The first user agent may include an application. The application may establish the second communication link and send the related data. The related data may be various kinds of data and may be related in differing degrees. For example, in one embodiment the related data may be the same data. The data may have the same format or different formats. In another embodiment, the related data may not be identical but may include a similar signal or similar data. The related data may include voice data, multimedia data, signaling information, or any other kind of data.

The first user agent and the second user agent can negotiate the support, willingness, and call-related information to proceed with application assisted soft handoff before, during or after the establishment of the second communication link.

The networks may be any kind of communication network capable of being used by user agents to communicate. Examples of types of networks include, but are not limited to a CDMA network, a Local Area Network (LAN), a wireless LAN, a global computer network, a General Packet Radio Service (GPRS) network, a Global System for Mobile Communication (GSM) network, a Universal Mobile Telecommunications System (UMTS) network, and the Public Switched Telephone Network (PSTN).

Before the second communication link is established, the second network may be discovered. Once the second network is discovered, a user agent may determine whether the second network should be used before the second communication link is established through use of network preference criteria.

A method for soft handoff across different networks is disclosed wherein the call is transferred from one device to another. A first communication link through a first network is used for communicating between a first user agent and a second user agent. A second communication link is established through a second network between a third user agent and the second user agent while maintaining the first communication link. Related data is sent through the first communication link and the second communication link such that the first communication link and the second communication link are each being used for the same call. The first communication link is dropped and communication is continued using the second communication link between the third user agent and the second user agent.

A user agent for soft handoff across different networks is also disclosed. The user agent includes a processor and memory in electronic communication with the processor. An application is stored in the memory. The application is programmed to implement a method for accomplishing soft handoff across different networks. According to the method, a first communication link through a first network is used for communicating between a first user agent and a second user agent. A second communication link is established through a second network between the first user agent and the second user agent while maintaining the first communication link. Related data is sent through the first communication link and the second communication link such that the first communication link and the second communication link are each being used for the same call. The first communication link is dropped and communication is continued using the second communication link.

A network application gateway for soft handoff across different networks is also disclosed. The network application gateway includes a processor and memory in electronic communication with the processor. An application is stored in the memory. The application is programmed to implement a method for accomplishing soft handoff across different networks. According to the method, a first communication link is enabled by the network application gateway through a first network between a first user agent and a second user agent. A second communication link is established through a second network between the network application gateway and the first user agent while maintaining the first communication link. Related data is sent through the first communication link and the second communication link such that the first communication link and the second communication link are each being used for the same call. One communication link is maintained with the legacy user agent. The first communication link is dropped and communication is continued using the second communication link.

It will be appreciated by those skilled in the art that a computer-readable medium may be used to store the application software disclosed herein.

The word “exemplary” is used exclusively herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.

The following discussion develops the exemplary embodiments of soft handoff across different types of communication networks assisted by an end-to-end application protocol. A network block diagram illustrates soft handoff by user agents assisted by an end-to-end application protocol. An embodiment of a mobile user agent is shown. Flow diagrams are shown that illustrate the soft handoff. The discovery of a new network and a determination whether to move to the new network is also discussed. Embodiments of network discovery settings and network preference criteria are depicted. A network application gateway may be used to allow a legacy user agent to be used with the systems and methods herein. Several diagrams show the use of the network application gateway to facilitate soft handoff assisted by an end-to-end application protocol. A block diagram illustrates call transfer from one device to another device. The method for achieving call transfer from one device to another device is discussed.

Note that the exemplary embodiment is provided as an exemplar throughout this discussion, however, alternate embodiments may incorporate various aspects without departing from the scope of the present invention. Specifically, the present invention is applicable to a data processing system, a wireless communication system, a mobile IP network and any other system desiring to receive and process a wireless signal.

FIG. 1 is a network block diagram illustrating soft handoff assisted by an end-to-end application protocol. A first user agent 102 a is in electronic communication with a second user agent 102 b. The initial communication link 106 is through a first network 104 a. As shown, a second network 104 b exists and will be facilitating communication between the user agents 102.

The first communication link 106 through the first network 104 a may have originated with either user agent 102. For purposes of this discussion, it is assumed that the first user agent 102 a has become aware of the second network 104 b and intends to transfer the communication from the first communication link 106 to a second communication link 108. The systems and methods disclosed herein allow the first user agent 102 a to move from the first network 104 a to the second network 104 b while continuing to communicate with the second user agent 102 b. The system may operate such that the communication link is maintained regardless of the types and administrative domains of the two networks, as long as the users are authorized to use each of the two networks. This is accomplished through use of a soft handoff assisted by an end-to-end application layer protocol.

In an embodiment of a user agent 102, the user agent 102 may be communicating through use of application software (shown in FIG. 2) on the user agent 102. When the application on one user agent 102 decides to handoff the communication link to a new network 104 b, the user agent 102 signals to the application on the other end to set up a new communications link 108 through the new network 104 b. When the new link 108 is up, the applications on both ends start to use the new link 108 and release the old link 106. When the new link 108 is up, the same information or data is being sent over both links 106, 108 for a period of time. Thus, conferencing or mixing is not needed. The user agent 102 may either use one link or the other, but the different links are not mixed together as is often the case in a conferencing context.

Given adequate application synchronization support, the handoff may be lossless. In addition, soft handoff may be possible without the need for the underlying networks 104 to be aware of the handoff. The handoffs may be between different types of networks 104; for example, a circuit switched link can be handed off to a packet switched link.

The communication networks 104 may be any kind of communication networks capable of transmitting communications between user agents 102. Examples of possible networks 104 include, but are not limited to, a CDMA 1x network, a Local Area Network (LAN), a wireless LAN, the Internet (also referred to as a global computer network), a W-CDMA network, a GPRS network, a GSM network, a UMTS network and the PSTN.

The communications being sent between user agents 102 may be voice or data. Multimedia sessions may also be handled with the present systems and methods.

FIG. 2 is a block diagram of certain components in an embodiment of a mobile user agent 202. In the embodiment shown in FIG. 2, the communication device 202 is a mobile terminal that is capable of being connected to a radio access network. The user agent 102 may also be embodied in a desktop computer, a non-mobile telephone, a laptop computer, a personal digital assistant, a cellular phone, etc. The user agent 202 is broadly defined as any electronic device capable of facilitating communications through use of a communication network 104. The mobile user agent 202 shown in FIG. 2 is only one possible embodiment out of many embodiments of user agents 202. In addition, the term user agent 202 also includes the aforementioned devices without necessarily having a user present at the user agent 202. For example, the user agent 202 may be a computer hosting a web site, and a far end user may be accessing and communicating with the web site user agent 202.

As shown, the mobile user agent 202 includes a central processing unit (CPU) 260, which controls operation of the user agent 202. A memory 262, which may include both read-only memory (ROM) and random access memory (RAM), provides instructions and data to the CPU 260. A portion of the memory 262 may also include non-volatile random access memory (NVRAM). Depending on the type of use agent 202 being used, the memory 262 may include other storage devices such as a hard drive, a removable drive, etc.

The memory stores application software 220 for implementing the systems and methods disclosed herein. At different times, the CPU 260 (also referred to as the processor 260) may be executing the application software 220 to carry out the systems and methods herein. Of course, it will be appreciated by those skilled in the art that the application software 220 for implementing the disclosed systems and methods may be integrated with a larger program for controlling the user agent 202. As a result, the application software 220 may be a distinct module, it may be part of another module, or it may include several different modules. In addition, specialized hardware may be used to implement the systems and methods herein.

The mobile user agent 202 also includes a transmitter 264 and a receiver 266 to allow transmission and reception of data between the user agent 202 and a remote location, such as a cell site controller or base station 1004. The mobile user agent 202 may have more than one transmitter 264 and more than one receiver 266. The transmitter 264 and receiver 266 may be combined into a transceiver 268. An antenna 270 is electrically coupled to the transceiver 268. The operation of the transmitter 264, receiver 266, and antenna 270 is well known in the art and need not be described herein.

The mobile user agent 202 also includes a signal detector 272 used to detect and quantify the level of signals received by the transceiver 268. The signal detector 272 detects such signals as total energy, pilot energy per pseudorandom noise (PN) chips, power spectral density, and other signals, as is known in the art.

The various components of the mobile terminal 202 are coupled together by a bus system 278 which may include a power bus, a control signal bus, and a status signal bus in addition to a data bus. However, for the sake of clarity, the various busses are illustrated in FIG. 2 as the bus system 278.

A general flow diagram is shown in FIG. 3 illustrating a general method 300 for soft handoff assisted by an end-to-end application protocol as depicted in FIG. 1. Two user agents 102 have 302 an established communication link 106 through use of a first network 104 a. The first user agent 102 a intends to use a different network 104 b for communicating with the second user agent 102 b to continue the same call. The term “call” as used herein is defined as the communication between user agents 102. The call may be a voice call, an exchange of data, a multimedia session, etc. To continue the same call means that the user agents will be able to continue with whatever type of communication was taking place. For example, if users were talking, to continue the same call would mean that the users would be able to continue their conversation uninterrupted. If the a user was exchanging data, either uploading or downloading or both, to continue the same call would mean that the user would be able to continue the data exchange uninterrupted.

The first user agent 102 a establishes 304 a new communication link 108 via the new network 104 b with the second user agent 102 b. When establishing a new connection, the first user agent 102 a indicates to the second user agent 102 b that it is the same call or information that is going to be communicated over the new link (i.e., that it is going to be the same call). The first user agent 102 a continues to maintain 306 both connections 106, 108 until the new connection 108 using the new network 104 b is ready for use. For a period of time, there are two connections or communication links with the same or substantially similar information being transmitted through the two links. Then the old connection 106 through the first network 104 a may be dropped 308 and the new connection 108 through the new network 104 b is maintained and communications continue through the new network connection 108.

Either user agent 102 may initiate the new communication link. Although in FIGS. 1 and 3, for the sake of example, the first user agent 102 a initiated the new link 108 over the second network 104 b, it should be understood that the second user agent 102 b may also initiate a new link after which a soft handoff may be performed.

A general flow diagram is shown in FIG. 4 illustrating a general method 400 for soft handoff where the user agent 102 b is notified that another user agent 102 a desires to move to a new network. The user agent 102 b is notified 402 that the other user agent 102 a desires to use a different network 104 b for communicating the same call. The user agents 102 a, 102 b then negotiate and perform 404 the establishment of the new connection. The user agents may negotiate the support, willingness, and call-related information to proceed with application assisted soft handoff before, during or after the establishment of the second communication link. Then the user agent 102 b connects 406 to the new connection 108 and begins sending data related to the same call over both connections 106, 108. The user agent 102 b continues to maintain the old connection 106 until the new connection 108 using the new network 104 b is ready for use. The user agent 102 b may receive a message from the other user agent 102 a indicating that the old connection 106 through the first network 104 a may be dropped 408 and the new connection 108 through the new network 104 b is maintained and communications continue through the new network connection 108.

FIG. 5 is a flow diagram 500 illustrating discovery of a new network 104 b and a determination whether to move to the new network 104 b. The user agent 102 a is currently within a first network 104 a and has 502 a communication link 106 with a second user agent 102 b. The first user agent 102 a discovers 504 a new network 104 b. The first user agent 102 a then determines 506 whether the current connection should be switched to the new network 104 b based on network preference criteria, discussed below. The network preference criteria may be used to determine whether the new network 104 b should be used. If 508 the new network 104 b is not to be used, the user agent 102 a may log the decision not to use the new network 104 b and continue 510 normal operations with the current network 104 a and the current communication link 106. If the new network 104 b and the new communication link 108 are to be used, the user agent 102 a establishes 512 a new communication link 108 with the second user agent 102 b via the new network 104 b. In establishing 512 the new connection, the first user agent 102 a identifies the first communication link 106 by sending a call identification (call ID) to the second user agent 102 b. The call ID is an identification that is used to identify a specific communication leg and is not meant to limit the systems and methods herein to a specific type of network or type of communication.

The user agents 102 a, 102 b continue to maintain 514 both communication links 106, 108 until the new communication link 108 using the new network 104 b is ready for use. Then the old connection 106 through the first network 104 a may be dropped 516 and the new communication link 108 or connection 108 through the new network 104 b is maintained and communications continue through the new network connection 108.

FIG. 6 is a block diagram illustrating an embodiment of network discovery settings 602. The network discovery settings 602 define how a new network 104 is to be discovered. As shown, the network discovery may be automatic 604 or it may be made manually 606 by a user. If there are automatic network discovery settings 604, the user agent 102 automatically scans for and/or discovers new networks 104 without user intervention. If the network discovery setting is manual 606, user intervention may be required.

Automatic settings 604 may include scan for new network data 608 and/or use geographic trigger data 610. The scan for new network data 608 configures the user agent 102 to scan for newly available networks by using various means as known by those skilled in the art. The use geographic trigger data 610 configures the user agent 102 to use new networks 104 based on geographic location and settings.

If the manual network discovery setting 606 is used, the use of a new network 104 may be user initiated. For example, if a user becomes aware of a wireless LAN in the user's area, the user may manually cause the user agent 102 to transfer its communication link to the wireless LAN.

FIG. 7 is a block diagram of an embodiment of network preference criteria 702. Network preference criteria 702 may include, but are not limited to, cost 704, provider 706, type 708, security 710, quality of service 712 and/or other 714 items. The cost 704 criteria may be used to configure a user agent 102 to switch to new networks 104 based on cost. The switch based on cost may be automatic or it may require user confirmation. One possible use of cost 704 criteria may be to cause the user agent 102 to switch to the cheapest network 104 available.

The provider 706 criteria may be used to configure a user agent 102 to switch to new networks 104 based on the providers of the networks 104. The switch based on the provider may be automatic or it may require user confirmation. One possible use of provider 706 criteria may be to cause the user agent 102 to switch to a particular provider if one of its networks 104 is available.

The type 708 criteria may be used to configure a user agent 102 to switch to new networks 104 based on the type of networks 104. The switch based on the type may be automatic or it may require user confirmation. One possible use of type 708 criteria may be to cause the user agent 102 to switch to a particular type of network (e.g., a wireless LAN) if one is available.

The security 710 criteria may be used to configure a user agent 102 to switch to a new network 104 b based on the security support of the networks 104. The quality of service 712 criteria may be used to configure a user agent 102 to switch to a new network 104 b based on the quality of service support (bandwidth, delay, etc.) of the networks 104.

It should be appreciated by those skilled in the art that other 714 network preference criteria 702 may be used. In addition, the user agent 102 may use a combination of criteria 702 to determine when to switch to a new network 104.

FIG. 8 is a block diagram of a system 800 using a network application gateway 801 to facilitate soft handoff assisted by an end-to-end application protocol. The first user agent 802 a has been configured for soft handoff assisted by an end-to-end application protocol according to the systems and methods described herein. The legacy user agent 803 shown in FIG. 8 has not been configured for soft handoff assisted an by end-to-end application protocol. The network application gateway 801 facilitates the transfer of the connection from the first network 804 a to the second network 804 b for the legacy user agent 803. The network application gateway 801 includes the functionality as discussed in relation to FIGS. 1-7 to enable soft handoff to a new network. In addition, the network application gateway 801 passes through the active connection to the legacy user agent 803. The network application gateway 801 may be located at the border between an IP network and an access network. Since the network application gateway 801 would be able to communicate with both circuit switched networks and packet switched networks, it may be located on the core network.

FIG. 9 is a flow diagram illustrating a method for using a network application gateway 801 to facilitate soft handoff assisted by an end-to-end application protocol. The user agent 802 a is currently within a first network 804 a and has 902 a communication link with the legacy user agent 803 via the network application gateway 801. The user agent 802 a discovers 904 a new network 804 b. The user agent 802 a then determines 906 whether the current connection should be switched to the new network 804 b based on network preference criteria 702. If 908 the new network 804 b is not to be used, the user agent 802 a may log the decision not to use the new network 804 b and 910 continue normal operations with the current network 804 a and the current communication link. If the new network 804 b and the new communication link are to be used, the user agent 802 a establishes 912 a new communication link 808 with the network application gateway 801 via the new network 804 b. In establishing 912 the new connection, the user agent 802 a identifies the first communication link 806 by sending a call ID to the network application gateway 801.

The user agent 802 a continues to maintain 914 both communication links 806, 808 until the new communication link 808 using the new network 804 b is ready for use. Then the old connection 806 through the first network 804 a may be dropped 916 and the new communication link 808 or connection 808 through the new network 804 b is maintained and communications continue through the new network connection 808. The network application gateway 801 passes the active communication link through to the legacy user agent 803. Thus, a user agent 802 a is able to switch to a new network 804 b and maintain the same call with the legacy user agent 803 even though the legacy user agent 803 has not been configured to facilitate soft handoff to a new network. This functionality is provided by the network application gateway 801.

FIG. 10 is a block diagram of another embodiment of a system using a network application gateway 1001 to facilitate soft handoff assisted by an end-to-end application protocol. The network application gateway 1001 receives two media streams 1008 a, 1008 b from two different networks 1004 b, 1004 c. As shown in FIG. 10, the signaling 1006 may be communicated via the first network 1004 a. The network application gateway 1001 may choose to use streams from one of the networks 1004; especially, since it knows that the media streams 1008 from the two different networks 1004 b, 1004 c are the same. When the first user agent 1002 a moves completely into one of the networks 1004 or when one of the networks 1004 fade, the first user agent 1002 a may terminate the fading session and continue the call through the new network. The network application gateway 1001 may send the signaling and media streams 1006, 1008 through an additional network 1004 d.

FIG. 11 is a block diagram illustrating call transfer from one device to another device. Assume that a user agent 1102 a is engaged in a current communication link 1106 connection via a first network 1104 a to a second user agent 1102 b. Then the user wants to transfer the same call to a third user agent 1102 c. For example, the user may be using a desktop computer for the connection and wishes to transfer the connection to his or her cell phone to continue the call or session. Through the method shown in FIG. 12, the user may transfer the call from one device to another and continue to be engaged in the call or session.

FIG. 12 is a flow diagram illustrating call transfer from one device to another device as depicted in FIG. 11. The first user agent 1102 a is currently engaged 1202 in a communication link 1106 with the second user agent 1102 b and desires to transfer the communication link to a third user agent 1102 c. The user agents 1102 a, 1102 b negotiate 1204 to establish a new connection for the call using the third user agent 1102 c and that the new connection is to be the same call as the current call. The third user agent 1102 c then establishes 1206 a communication link with the second user agent 1102 b. The second user agent 1102 b transmits the same information/media to the first user agent 1102 a and the third user agent 1102 c. The second user agent 1102 b receives two sets of media, one from the first user agent 1102 a and one from the third user agent 1102 c. The second user agent 1102 b may choose to use one of the media sets and ignore the other. Typically for a period of time both communication links 1106, 1108 will be maintained 1208 until the user agent 1102 is ready to end the first communication link 1106. Once the second communication link has been established 1206 and maintained 1208, the first user agent 1102 a may end 1210 the first communication link 1106. The user will continue the call with the third user agent 1102 c through the new communication link 1108.

Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.

The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the present invention. In other words, unless a specific order of steps or actions is required for proper operation of the embodiment, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the present invention.

The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. 

1. A method for soft handoff across different networks, the method comprising: communicating between a first user agent and a second user agent using a first communication link through a first network; negotiating to use a second communication link for the same call; establishing the second communication link through a second network between the first user agent and the second user agent while maintaining the first communication link; sending related data through the first communication link and the second communication link such that the related data is for the same call; dropping the first communication link; and continuing communication using the second communication link.
 2. The method as defined in claim 1, wherein the first user agent comprises an application and wherein the application performed the establishing of the second communication link and the sending of the related data.
 3. The method as defined in claim 1, wherein the related data has the same data format.
 4. The method as defined in claim 1, wherein the related data has different data formats.
 5. The method as defined in claim 1, wherein the related data is voice data.
 6. The method as defined in claim 1, wherein the related data is multimedia data.
 7. The method as defined in claim 1, wherein the related data comprises signaling information for the same call.
 8. The method as defined in claim 1, wherein the second user agent is receiving the related data from the first communication link and the second communication link, and wherein the second user agent uses the related data from only one of the communication links.
 9. The method as defined in claim 1, wherein the first network and the second network are each a network selected from the group consisting of a CDMA network, a Local Area Network (LAN), a wireless LAN, a global computer network, a General Packet Radio Service (GPRS) network, a Global System for Mobile Communication (GSM) network, a Universal Mobile Telecommunications System (UMTS) network, and the Public Switched Telephone Network (PSTN).
 10. The method as defined in claim 1, further comprising discovering the second network before the second communication link is established.
 11. The method as defined in claim 10, further comprising determining whether the second network should be used before the second communication link is established through use of network preference criteria.
 12. The method as defined in claim 1, wherein the second user agent comprises a legacy user agent and wherein a network application gateway facilitates the soft handoff from the first network to the second network.
 13. The method as defined in claim 1, wherein the negotiating is performed before the establishing of the second communication link.
 14. The method as defined in claim 1, wherein the negotiating is performed during the establishing of the second communication link.
 15. The method as defined in claim 1, wherein the negotiating is performed after the establishing of the second communication link.
 16. A method for soft handoff across different networks, the method comprising: communicating between a first user agent and a second user agent using a first communication link through a first network; negotiating to use a second communication link for the same call; establishing the second communication link through a second network between a third user agent and the second user agent while maintaining the first communication link; sending related data through the first communication link and the second communication link such that the related data is for the same call; dropping the first communication link; and continuing communication using the second communication link between the third user agent and the second user agent.
 17. A user agent for soft handoff across different networks, the user agent comprising: a processor; memory in electronic communication with the processor; and an application stored in the memory, the application being configured to implement a method comprising: communicating with a second user agent using a first communication link through a first network; negotiating to use a second communication link; establishing the second communication link through a second network with the second user agent while maintaining the first communication link; sending related data through the first communication link and the second communication link such that the related data is for the same call; dropping the first communication link; and continuing communication using the second communication link.
 18. The user agent as defined in claim 17, wherein the related data has the same data format.
 19. The user agent as defined in claim 17, wherein the related data has different data formats.
 20. The user agent as defined in claim 17, wherein the related data is voice data.
 21. The user agent as defined in claim 17, wherein the related data is multimedia data.
 22. The user agent as defined in claim 17, wherein the related data comprises signaling information for the same call.
 23. The user agent as defined in claim 17, wherein the first network and the second network are each a network selected from the group consisting of a CDMA network, a Local Area Network (LAN), a wireless LAN, a global computer network, a General Packet Radio Service (GPRS) network, a Global System for Mobile Communication (GSM) network, a Universal Mobile Telecommunications System (UMTS) network, and the Public Switched Telephone Network (PSTN).
 24. The user agent as defined in claim 17, wherein the method implemented by the application further comprises discovering the second network before the second communication link is established.
 25. The user agent as defined in claim 24, wherein the method implemented by the application further comprises determining whether the second network should be used before the second communication link is established through use of network preference criteria.
 26. The user agent as defined in claim 17, wherein the second user agent comprises a legacy user agent and wherein the method implemented by the application further comprises communicating with a network application gateway that facilitates the soft handoff from the first network to the second network.
 27. The user agent as defined in claim 17, wherein the method implemented by the application performs the negotiating before the establishing of the second communication link.
 28. The user agent as defined in claim 17, wherein the method implemented by the application performs the negotiating during the establishing of the second communication link.
 29. The user agent as defined in claim 17, wherein the method implemented by the application performs the negotiating after the establishing of the second communication link.
 30. A network application gateway for soft handoff across different networks, the network application gateway comprising: a processor; memory in electronic communication with the processor; and an application stored in the memory, the application being configured to implement a method comprising: enabling communications between a first user agent and a legacy user agent using a first communication link through a first network; negotiating to use a second communication link; establishing the second communication link through a second network with the first user agent while maintaining the first communication link; sending related data through the first communication link and the second communication link such that the related data is for the same call, while maintaining one communication link with the legacy user agent; dropping the first communication link; and continuing communication using the second communication link.
 31. A computer-readable medium for storing program data, wherein the program data comprises executable instructions for implementing a method in a communication device, the method comprising: communicating between a first user agent and a second user agent using a first communication link through a first network; negotiating to use a second communication link for the same call; establishing the second communication link through a second network between the first user agent and the second user agent while maintaining the first communication link; sending related data through the first communication link and the second communication link such that the related data is for the same call; dropping the first communication link; and continuing communication using the second communication link.
 32. The computer-readable medium as defined in claim 31, wherein the related data has the same data format.
 33. The computer-readable medium as defined in claim 31, wherein the related data has different data formats.
 34. The computer-readable medium as defined in claim 31, wherein the related data is voice data.
 35. The computer-readable medium as defined in claim 31, wherein the related data is multimedia data.
 36. The computer-readable medium as defined in claim 31, wherein the related data comprises signaling information for the same call.
 37. The computer-readable medium as defined in claim 31, wherein the second user agent is receiving the related data from the first communication link and the second communication link, and wherein the second user agent uses the related data from only one of the communication links.
 38. The computer-readable medium as defined in claim 31, wherein the first network and the second network are each a network selected from the group consisting of a CDMA network, a Local Area Network (LAN), a wireless LAN, a global computer network, a General Packet Radio Service (GPRS) network, a Global System for Mobile Communication (GSM) network, a Universal Mobile Telecommunications System (UMTS) network, and the Public Switched Telephone Network (PSTN).
 39. The computer-readable medium as defined in claim 31, further comprising discovering the second network before the second communication link is established.
 40. The computer-readable medium as defined in claim 39, further comprising determining whether the second network should be used before the second communication link is established through use of network preference criteria.
 41. The computer-readable medium as defined in claim 31, wherein the second user agent comprises a legacy user agent and wherein a network application gateway facilitates the soft handoff from the first network to the second network.
 42. The computer-readable medium as defined in claim 31, wherein the negotiating is performed before the establishing of the second communication link.
 43. The computer-readable medium as defined in claim 31, wherein the negotiating is performed during the establishing of the second communication link.
 44. The computer-readable medium as defined in claim 31, wherein the negotiating is performed after the establishing of the second communication link.
 45. A computer-readable medium for storing program data, wherein the program data comprises executable instructions for implementing a method in a communication device, the method comprising: communicating between a first user agent and a second user agent using a first communication link through a first network; negotiating to use a second communication link for the same call; establishing the second communication link through a second network between a third user agent and the second user agent while maintaining the first communication link; sending related data through the first communication link and the second communication link such that the related data is for the same call; dropping the first communication link; and continuing communication using the second communication link between the third user agent and the second user agent. 